package com.b511.swpu.cementbackend.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Date;

@Entity
@Getter
@Setter
@Accessors(chain = true)
@Table(name = "CM_WK_BASIC", schema = "WANGBING", catalog = "")
// 对应数据表 CM_WK_BASIC 用于生成报表数据中的 基础数据 和 施工人员
public class CM_WK_BASIC {
    @Id
    @GenericGenerator(name="cmWkBasicGenerator", strategy="uuid")
    @GeneratedValue(generator="cmWkBasicGenerator")
    // ID生成策略是否改为UUID -> String
    @Column(name = "CM_WK_BASIC_ID")
    private String CM_WK_BASIC_ID;

    @Basic
    @Column(name = "BA_WELL_ID")
    private String BA_WELL_ID;

    @Basic
    @Column(name = "WELLNAME")
    private String wellName;

    @Basic
    @Column(name = "PLATFORM_TYPE")
    private String platformType;

    @Basic
    @Column(name = "WORK_CATEGORY")
    private String workCategory;

    @Basic
    @Column(name = "CASE_TYPE")
    private String caseType;

    @Basic
    @Column(name = "OPERATOR")
    private String operator;

    @Basic
    @Column(name = "CONTRACTOR")
    private String contractor;

    @Basic
    @Column(name = "PLATFORM")
    private String platform;

    @Basic
    @Column(name = "CEMENTTYPE")
    private String cementType;

    @Basic
    @Column(name = "WORK_TYPE")
    private String workType;

    @Basic
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @Column(name = "WORK_DATE")
    private Date workDate;

    @Basic
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @Column(name = "REPORT_DATE")
    private Date reportDate;

    @Basic
    @Column(name = "UP_CASE_DEPTH")
    private Double upCaseDepth;

    @Basic
    @Column(name = "UP_CASE_SIZE")
    private String upCaseSize;

    @Basic
    @Column(name = "HOLE_SIZE")
    private String holeSize;

    @Basic
    @Column(name = "CASE_SIZE")
    private String caseSize;

    @Basic
    @Column(name = "HOLE_DEPTH")
    private Double holeDepth;

    @Basic
    @Column(name = "CASE_DEPTH")
    private Double caseDepth;

    @Basic
    @Column(name = "INCASE_SIZE")
    private String inCaseSize;

    @Basic
    @Column(name = "INCASE_DEPTH")
    private Double inCaseDepth;

    @Basic
    @Column(name = "PLUG_TOP_HEIGHT")
    private Double plugTopHeight;

    @Basic
    @Column(name = "PLUG_END_HIEGHT")
    private Double plugEndHeight;

    @Basic
    @Column(name = "TAILCASE_SIZE")
    private String tailCaseSize;

    @Basic
    @Column(name = "TAILCASE_DEPTH")
    private Double tailCaseDepth;

    @Basic
    @Column(name = "TAILCASE_FACTORY")
    private String tailCaseFactory;

    @Basic
    @Column(name = "HANG_STYLE")
    private String hangStyle;

    @Basic
    @Column(name = "IS_PACKER")
    private String isPacker;

    @Basic
    @Column(name = "TAILCASE_HANGE_TYPE")
    private String tailCaseHangeType;

    @Basic
    @Column(name = "OUT_HAND_STYLE")
    private String outHandStyle;

    @Basic
    @Column(name = "TAILCASE_HANGE_DEPTH")
    private Double tailCaseHangeDepth;

    @Basic
    @Column(name = "IS_RECYLE")
    private String isRecyle;

    @Basic
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @Column(name = "RECYLE_TIME")
    private Date recyleTime;

    @Basic
    @Column(name = "AIR_GAP")
    private Double airGap;

    @Basic
    @Column(name = "PIPE_SIZE")
    private String pipeSize;

    @Basic
    @Column(name = "MUD_DEPTH")
    private Double mudDepth;

    @Basic
    @Column(name = "PIPE_DEPTH")
    private Double pipeDepth;

    @Basic
    @Column(name = "FIRST_FLUID_TOPDEPTH")
    private Double firstFluidTopDepth;

    @Basic
    @Column(name = "FIRST_FLUID1_TOPDEPTH")
    private Double firstFluid1TopDepth;

    @Basic
    @Column(name = "FIRST_FLUID2_TOPDEPTH")
    private Double firstFluid2TopDepth;

    @Basic
    @Column(name = "MID_FLUID_TOPDEPTH")
    private Double midFluidTopDepth;

    @Basic
    @Column(name = "TAIL_FLUID_TOPDEPTH")
    private Double tailFluidTopDepth;

    @Basic
    @Column(name = "TAIL_FLUID1_TOPDEPTH")
    private Double tailFluid1TopDepth;

    @Basic
    @Column(name = "TAIL_FLUID2_TOPDEPTH")
    private Double tailFluid2TopDepth;

    @Basic
    @Column(name = "FIRST_FLUID_VOL")
    private Double firstFluidVol;

    @Basic
    @Column(name = "FIRST_FLUID1_VOL")
    private Double firstFluid1Vol;

    @Basic
    @Column(name = "FIRST_FLUID2_VOL")
    private Double firstFluid2Vol;

    @Basic
    @Column(name = "MID_FLUID_VOL")
    private Double midFluidVol;

    @Basic
    @Column(name = "TAIL_FLUID_VOL")
    private Double tailFluidVol;

    @Basic
    @Column(name = "TAIL_FLUID1_VOL")
    private Double tailFluid1Vol;

    @Basic
    @Column(name = "TAIL_FLUID2_VOL")
    private Double tailFluid2Vol;

    @Basic
    @Column(name = "QUALITY")
    private String quality;

    @Basic
    @Column(name = "INTEGEVALUE")
    private String integEvalue;

    @Basic
    @Column(name = "CEMENT_ENGINEER")
    private String cementEngineer;

    @Basic
    @Column(name = "OPERAT_ENGINEER")
    private String operatEngineer;

    @Basic
    @Column(name = "MANIPULATOR")
    private String manipulator;

    @Basic
    @Column(name = "REPORTER")
    private String reporter;

    @Basic
    @Column(name = "APPROVER")
    private String approver;

    @Basic
    @Column(name = "REPORT_DATE2")
    private String reportDate2;

    @Basic
    @Column(name = "APPROV_DATE")
    private String approvDate;

    @Basic
    @Column(name = "REPORTTYPE")
    private String reportType;

    //校验状态
    @Basic
    @Column(name = "CHECKSTATUS",length = 50)
    private String checkStatus;

    //上传人
    @Basic
    @Column(name = "UPLOADPERSON",length = 30)
    private String uploadPerson;

    //检验人
    @Basic
    @Column(name = "CHECKPERSON",length = 30)
    private String checkPerson;






    public CM_WK_BASIC(){

    }

    public CM_WK_BASIC(String CM_WK_BASIC_ID, String wellName, String platformType, String operator, String contractor, String platform, String workType, Date workDate, Date reportDate, String holeSize, String caseSize, String checkStatus) {
        this.CM_WK_BASIC_ID = CM_WK_BASIC_ID;
        this.wellName = wellName;
        this.platformType = platformType;
        this.operator = operator;
        this.contractor = contractor;
        this.platform = platform;
        this.workType = workType;
        this.workDate = workDate;
        this.reportDate = reportDate;
        this.holeSize = holeSize;
        this.caseSize = caseSize;
        this.checkStatus = checkStatus;
    }
}
